package model;

import java.io.Serializable;
import java.util.Date;

public class Vertrag implements Serializable{

	private static final long serialVersionUID = -588911383972619474L;

	private int vertragsNr = 0;
	private Tarif tarif;
	private Reservierung reservierung;
	private Schadensbericht schadensbericht;
	private Date uebergabe;
	private Date rueckgabe;
	private boolean selbstbeteiligung;
	private double gesamtbetrag = 0;

	public Vertrag() {
		this.tarif = new Tarif();
		this.reservierung = new Reservierung();
		this.schadensbericht = new Schadensbericht();
	};

	public Vertrag(int vertragsNr, Tarif tarif, Reservierung reservierung,
			Schadensbericht schadensbericht, Date uebergabe, Date rueckgabe,
			boolean selbstbeteiligung, double gesamtbetrag) {
		this.vertragsNr = vertragsNr;
		this.tarif = tarif;
		this.reservierung = reservierung;
		this.schadensbericht = schadensbericht;
		this.uebergabe = uebergabe;
		this.rueckgabe = rueckgabe;
		this.selbstbeteiligung = selbstbeteiligung;
		this.gesamtbetrag = gesamtbetrag;
	}

	public int getVertragsNr() {
		return vertragsNr;
	}

	public void setVertragsNr(int vertragsNr) {
		this.vertragsNr = vertragsNr;
	}

	public Tarif getTarif() {
		return tarif;
	}

	public void setTarif(Tarif tarif) {
		this.tarif = tarif;
	}

	public Reservierung getReservierung() {
		return reservierung;
	}

	public void setReservierung(Reservierung reservierung) {
		this.reservierung = reservierung;
	}

	public Schadensbericht getSchadensbericht() {
		return schadensbericht;
	}

	public void setSchadensbericht(Schadensbericht schadensbericht) {
		this.schadensbericht = schadensbericht;
	}

	public Date getUebergabe() {
		return uebergabe;
	}

	public void setUebergabe(Date uebergabe) {
		this.uebergabe = uebergabe;
	}

	public Date getRueckgabe() {
		return rueckgabe;
	}

	public void setRueckgabe(Date rueckgabe) {
		this.rueckgabe = rueckgabe;
	}

	public boolean getSelbstbeteiligung() {
		return selbstbeteiligung;
	}

	public void setSelbstbeteiligung(boolean selbstbeteiligung) {
		this.selbstbeteiligung = selbstbeteiligung;
	}

	public double getGesamtbetrag() {
		return gesamtbetrag;
	}

	public void setGesamtbetrag(double gesamtbetrag) {
		this.gesamtbetrag = gesamtbetrag;
	}
	
	public boolean checkIfComplete(){
		if(!tarif.checkIfComplete() || !reservierung.checkIfComplete() || uebergabe == null || rueckgabe == null || gesamtbetrag == -1){
			return false;
		}
			return true;
	}

}
